Convolutional codes are often used in digital communication systems to protect transmitted information from error. Such communication systems include the Direct Sequence Code Division Multiple Access (DS-CDMA) standard IS-95, the Global System for Mobile Communications (GSM), and next generation wideband communication systems. Typically in these systems, a signal is convolutionally coded into an outgoing code vector that is transmitted. At a receiver, a practical soft-output decoder, such as a Viterbi decoder as is known in the art, uses a trellis structure to perform an optimum search for the transmitted signal bits based on maximum likelihood criterion.
More recently, turbo codes have been developed that outperform conventional coding techniques. Turbo codes are generally composed of two or more convolutional codes and turbo interleavers. Turbo decoding is iterative and uses a soft output decoder to decode the individual convolutional codes. The soft outputs of one decoder feed into the next decoder or feedback to the first decoder when the decoding procedure iteratively approaches the converged final results. The soft output decoder is usually a MAP (maximum a posteriori) decoder which requires backward and forward recursions to determine the soft output. MAP derivatives are also available including log-MAP, max-log-MAP, soft-output Viterbi algorithm (SOVA), and constant-log-MAP algorithms, as are known in the art.
Turbo coding is efficiently utilized to correct errors in the case of communicating over an added white Gaussian noise (AWGN) channel. However, in the presence of intersymbol interference (ISI), the performance of turbo decoding is degraded. Some prior art methods have included equalization to mitigate ISI. However, these techniques are either too complicated to be implemented in practice or they introduce extra delay in receiver.
There is a need for a decoder that reduces errors due to distortion in ISI channels, and in particular, there is a need for an improved decoder that can equalize an ISI channel to reduce errors without introducing any additional delay. It would also be of benefit to provide a decoder with a minimal increase of circuitry or computational complexity.